
//正则表达式
var validateRegExp = {
    common: {
        decmal: "^([+-]?)\\d*\\.\\d+$",
        // 浮点数
        decmal1: "^[1-9]\\d*.\\d*|0.\\d*[1-9]\\d*$",
        // 正浮点数
        decmal2: "^-([1-9]\\d*.\\d*|0.\\d*[1-9]\\d*)$",
        // 负浮点数
        decmal3: "^-?([1-9]\\d*.\\d*|0.\\d*[1-9]\\d*|0?.0+|0)$",
        // 浮点数
        decmal4: "^[1-9]\\d*.\\d*|0.\\d*[1-9]\\d*|0?.0+|0$",
        // 非负浮点数（正浮点数 + 0）
        decmal5: "^(-([1-9]\\d*.\\d*|0.\\d*[1-9]\\d*))|0?.0+|0$",
        // 非正浮点数（负浮点数 +
        // 0）
        intege: "^-?[1-9]\\d*$",
        // 整数
        intege1: "^[1-9]\\d*$",
        // 正整数
        Amount:"^[0-9]+(.[0-9]{1,2})?$",
        //金额（正整数 或2位小数）
        decmal6:"^[0-9]+\.[0-9]{1}$",
        //金额（1位小数）
        intege2: "^-[1-9]\\d*$",
        // 负整数
        num: "^([+-]?)\\d*\\.?\\d+$",
        // 数字
        num1: "^[1-9]\\d*|0$",
        // 正数（正整数 + 0）
        num2: "^-[1-9]\\d*|0$",
        // 负数（负整数 + 0）
        ascii: "^[\\x00-\\xFF]+$",
        // 仅ACSII字符
        chinese: "^[\\u4e00-\\u9fa5]+$",
        // 仅中文
        color: "^[a-fA-F0-9]{6}$",
        // 颜色
        date: "^\\d{4}(\\-|\\/|\.)\\d{1,2}\\1\\d{1,2}$",
        // 日期
        email: "^\\w+((-\\w+)|(\\.\\w+))*\\@[A-Za-z0-9]+((\\.|-)[A-Za-z0-9]+)*\\.[A-Za-z0-9]+$",
        // 邮件
        idcard: "(^\d{15}$)|(^\d{17}([0-9]|X)$)",
        // 身份证
        bankcard:"^[1-9]([0-9]{14,21})$",
        // 银行卡号
        ip4: "^(25[0-5]|2[0-4]\\d|[0-1]\\d{2}|[1-9]?\\d)\\.(25[0-5]|2[0-4]\\d|[0-1]\\d{2}|[1-9]?\\d)\\.(25[0-5]|2[0-4]\\d|[0-1]\\d{2}|[1-9]?\\d)\\.(25[0-5]|2[0-4]\\d|[0-1]\\d{2}|[1-9]?\\d)$",
        // ip地址
        letter: "^[A-Za-z]+$",
        // 字母
        letter_l: "^[a-z]+$",
        // 小写字母
        letter_u: "^[A-Z]+$",
        // 大写字母
        mobile: "^0?(13|15|18|14|17|19|16)[0-9]{9}$",
        // 手机
        notempty: "^\\S+$",
        // 非空
        password: "^.*[A-Za-z0-9\\w_-]+.*$",
        // 密码
        psd:"((?=.*\d)(?=.*\D)|(?=.*[a-zA-Z])(?=.*[^a-zA-Z]))",//数字字母符号中的两种
        paypsd: "^\\d{6}$",
        fullNumber: "^[0-9]+$",
        // 数字
        picture: "(.*)\\.(jpg|bmp|gif|ico|pcx|jpeg|tif|png|raw|tga)$",
        // 图片
        qq: "^[1-9]*[1-9][0-9]*$",
        // QQ号码
        rar: "(.*)\\.(rar|zip|7zip|tgz)$",
        // 压缩文件
        tel: "^[0-9\-()（）]{7,18}$",
        // 电话号码的函数(包括验证国内区号,国际区号,分机号)
        url: "^http[s]?:\\/\\/([\\w-]+\\.)+[\\w-]+([\\w-./?%&=]*)?$",
        // url
        username: "^[A-Za-z0-9_\\-\\u4e00-\\u9fa5]+$",
        // 户名
        deptname: "^[A-Za-z0-9_()（）\\-\\u4e00-\\u9fa5]+$",
        // 单位名
        zipcode: "^\\d{6}$",
        // 邮编
        phoneValid:"^\\d{6}$",
        //短信验证码6位
        realname: "^[A-Za-z\\u4e00-\\u9fa5]+$",
        // 真实姓名
        companyname: "^[A-Za-z0-9_()（）\\-\\u4e00-\\u9fa5]+$",
        companyaddr: "^[A-Za-z0-9_()（）\\#\\-\\u4e00-\\u9fa5]+$",
        companysite: "^http[s]?:\\/\\/([\\w-]+\\.)+[\\w-]+([\\w-./?%&#=]*)?$"
    }
};
// 验证规则
var validate = {
    common: {
        isNull: function(str) {
            return (str == "" || typeof str != "string");
        },
        betweenLength: function(str, _min, _max) {
            return (str.length >= _min && str.length <= _max);
        },
        isUid: function(str) {
            return new RegExp(validateRegExp.common.username).test(str);
        },
        isNum: function(str) {
            return new RegExp(validateRegExp.common.num).test(str);
        },
        isNum1: function(str) {
            return new RegExp(validateRegExp.common.num1).test(str);
        },
        isAmount:function(str) {
            return new RegExp(validateRegExp.common.Amount).test(str);
        },
        isDecmal:function(str) {
            return new RegExp(validateRegExp.common.decmal1).test(str);
        },
        isDecmal6:function(str) {
            return new RegExp(validateRegExp.common.decmal6).test(str);
        },
        isIntege1:function(str) {
            return new RegExp(validateRegExp.common.intege1).test(str);
        },
        fullNumberName: function(str) {
            return new RegExp(validateRegExp.common.fullNumber).test(str);
        },
        isPwd: function(str) {
            return /^.*([\W_a-zA-z0-9-])+.*$/i.test(str);
        },
        ispsd: function(str) {
            return new RegExp(validateRegExp.common.psd).test(str)
        },
        ispaypsd: function(str) {
            return new RegExp(validateRegExp.common.paypsd).test(str)
        },
        isPwdRepeat: function(str1, str2) {
            return (str1 == str2);
        },
        isEmail: function(str) {
            return new RegExp(validateRegExp.common.email).test(str);
        },
        isTel: function(str) {
            return new RegExp(validateRegExp.common.tel).test(str);
        },
        isMobile: function(str) {
            return new RegExp(validateRegExp.common.mobile).test(str);
        },
        isidcard: function(str) {
            return new RegExp(validateRegExp.common.idcard).test(str);
        },
        isbankcard: function(str) {
            return new RegExp(validateRegExp.common.bankcard).test(str);
        },
        isphoneValid: function(str) {
            return new RegExp(validateRegExp.common.phoneValid).test(str);
        },
        checkType: function(element) {
            return (element.attr("type") == "checkbox" || element.attr("type") == "radio" || element.attr("rel") == "select");
        },
        isRealName: function(str) {
            return new RegExp(validateRegExp.common.realname).test(str);
        }
    }
};

// 验证文本
var validateMsg = {
    common: {
        loginPsd: {
            //onFocus: "<span>6-20位字符，建议由字母，数字和符号两种以上组合</span>",
            succeed: "",
            isNull: "请输入密码",
            error: {
                badLength: "密码长度只能在6-20位字符之间",
                badFormat: "密码只能由英文、数字及标点符号组成"
            }
        },
        loginPsdRepeat: {
            // onFocus: "请再次输入密码",
            succeed: "",
            isNull: "请确认密码",
            error: {
                badLength: "密码长度只能在6-20位字符之间",
                badFormat2: "两次输入密码不一致",
                badFormat1: "密码只能由英文、数字及标点符号组成"
            }
        },
        userName: {
            //onFocus: "请输入真实姓名",
            succeed: "",
            isNull: "请输入真实姓名",
            error: {
                badFormat: "真实姓名格式不正确"
            }
        },
        idCard: {
            //onFocus: "请输入身份证号",
            succeed: "",
            isNull: "请输入身份证号",
            error: {
                badFormat: "身份证格式不正确"
            }
        },
        bankCard: {
            //onFocus: "请输入银行卡号",
            succeed: "",
            isNull: "请输入银行卡号",
            error: {
                badFormat: "银行卡号格式不正确"
            }
        },
        phone: {
            //onFocus: "请输入手机号码",
            succeed: "",
            isNull: "请输入手机号码",
            error: {
                badFormat: "手机号码格式不正确"
            }
        },
        phoneValid: {
            //onFocus: "请输入短信验证码",
            succeed: "",
            isNull: "请输入短信验证码",
            error: {
                badFormat: "短信验证码格式不正确"
            }
        },
        payPsd: {
            //onFocus: "<span>6-20位字符，建议由字母，数字和符号两种以上组合</span>",
            succeed: "",
            isNull: "请输入密码",
            error: {
                badLength: "密码长度只能在6-20位字符之间",
                badFormat: "密码只能由英文、数字及标点符号组成"
            }
        },
        userAddress: {
            //onFocus: "<span>6-20位字符，建议由字母，数字和符号两种以上组合</span>",
            succeed: "",
            isNull: "请输入所在国家或地区",
            error: {
            }
        },
        loginId: {
            //onFocus: "<span>6-20位字符，建议由字母，数字和符号两种以上组合</span>",
            succeed: "",
            isNull: "请输入用户名",
            error: {
                badLength: "用户名长度只能在6-20位字符之间",
                badFormat: "手机号码或邮箱格式不正确"
            }
        },
        comAccName: {
            //onFocus: "<span>6-20位字符，建议由字母，数字和符号两种以上组合</span>",
            succeed: "",
            isNull: "请输入帐户名",
            error: {
                badLength: "帐户名长度只能在6-20位字符之间",
                badFormat: "邮箱格式不正确"
            }
        },
        captchas: {
            //onFocus: "请输入验证码",
            succeed: "",
            isNull: "请输入验证码",
            error: {
                badFormat: "验证码不正确"
            }
        },
        loginPsdRepeat: {
            //onFocus: "<span>6-20位字符，建议由字母，数字和符号两种以上组合</span>",
            succeed: "",
            isNull: "请输入登陆密码",
            error: {
                badLength: "登陆密码长度只能在6-20位字符之间",
                badFormat1: "登陆密码只能由英文、数字及标点符号组成",
                badFormat2: "两次输入登陆密码不一致"
            }
        },
        payPsdRepeat: {
            //onFocus: "<span>6-20位字符，建议由字母，数字和符号两种以上组合</span>",
            succeed: "",
            isNull: "请输入支付密码",
            error: {
                badLength: "支付密码长度只能在6-20位字符之间",
                badFormat1: "支付密码只能由英文、数字及标点符号组成",
                badFormat2: "两次输入登陆密码不一致"
            }
        },
        safeProblem: {
            //onFocus: "请输入安全问题",
            succeed: "",
            isNull: "请输入安全问题",
            error: {
            }
        },
        safeAnswer: {
            //onFocus: "请输入安全问题答案",
            succeed: "",
            isNull: "请输入安全问题答案",
            error: {
            }
        },
        idCardType: {
            //onFocus: "请输入证件类型",
            succeed: "",
            isNull: "请输入证件类型",
            error: {
            }
        },
        userProvince: {
            //onFocus: "请输入所在省份",
            succeed: "",
            isNull: "请输入所在省份",
            error: {
            }
        },
        userCity: {
            //onFocus: "请输入所在城市",
            succeed: "",
            isNull: "请输入所在城市",
            error: {
            }
        },
        cashWithdrawal: {
            //onFocus: "请输入提现金额",
            succeed: "",
            isNull: "请输入提现金额",
            error: {
                badFormat: "提现金额为数字",
                badFormat2: "提现金额金额为大于0正整数"
            }
        },
        payBank: {
            //onFocus: "请输入开户银行",
            succeed: "",
            isNull: "请输入开户银行",
            error: {
            }
        },
        bankProvince: {
            //onFocus: "请输入开户行所在地",
            succeed: "",
            isNull: "请输入开户行所在地",
            error: {
            }
        },
        paySubbranch: {
            //onFocus: "请输入开户支行",
            succeed: "",
            isNull: "请输入开户支行",
            error: {
            }
        },
        empty: {
            onFocus: "",
            succeed: "",
            isNull: "",
            error: ""
        }
    }
};